#ifndef __MESH_H__
#define __MESH_H__


#include "Entity.h"
#include <boost/smart_ptr/shared_ptr.hpp>


class CMesh : public IEntity
{
public:
	CMesh()
	{
		++m_id;
	}

	virtual ~CMesh()
	{}
	
	inline unsigned int getID() const
	{
		return m_id;
	}


private:
	static unsigned int m_id;
};
typedef boost::shared_ptr<CMesh> MeshPtr;

// Binary predicate
struct MeshIdentity : public std::binary_function<MeshPtr, unsigned int, bool>
{
	bool operator() (const MeshPtr pMesh, const unsigned int& uiID) const
	{
		return (pMesh->getID() == uiID);
	}
};




#endif // __MESH_H__